<html>
<head>
	<title>Creating bundles</title>
</head>
<body bgcolor="FFFFFF">

<h1>Creating bundles</h1>

<p>Every input and output on every component in the circuit has a
bit width associated with it. Often the bit width is 1, and there is no way
of changing that, but many of Logisim's built-in components
include attributes allowing you to customize the bit widths of
their inputs and outputs.</p>

<p>The below screen shot illustrates a simple circuit
for finding the bitwise AND of two three-bit inputs. Notice how the three-bit
output is the bitwise AND of the two inputs. All components have been
customized to deal with three-bit data via its Data Bits attribute; the screen
shot shows the AND gate attributes, including the Data Bits attribute of 3.</p>
<center><img src="../../../img-guide/bundles-create.png"></center>

<p>All components in Logisim define a bit width for each of input and output.
In contrast, a wire's bit width is undefined:
Instead, the wire's width adapts to the components to which it
is attached.
If a wire connects two components demanding different bit widths,
Logisim will complain of "Incompatible widths" and indicate the
offending locations in orange.
In the below, the output pin's Data Bits attribute has been
changed to 1, and so Logisim complains that the wire cannot
connect a three-bit value to a one-bit value.</p>
<center><img src="../../../img-guide/bundles-error.png"></center>
<p>Wires that connect incompatible locations (drawn in orange)
do not carry values.</p>

<p>For single-bit wires, you can see at a glance what value the wire carries
because Logisim colors the wire light or dark green depending the value.
It does not display values for multi-bit wires: They are simply
black. You can, though, probe a wire by clicking it using the
poke tool (<img src="../../../icons/poke.gif">).</p>
<center><img src="../../../img-guide/bundles-probe.png"></center>
<p>This probing feature is helpful for debugging circuits using
wire bundles.</p>

<p><strong>Next:</strong> <a href="splitting.html">Splitters</a>.</p>

</body>
</html>
